﻿var userArea = {
	editFormSetting : function(){
		common.dialogPopup($("#dialog-userEditForm"), {
	        "닫기": function() {
		          $( this ).dialog( "close" );
		        }
			}, 350, 385);
	},

	dataEdit : function(msg, fn, pwdChk){
		var $editForm = $("form", "#dialog-userEditForm");
		if(!$editForm.validation()){
			return false;
		};

		//비밀번호 체크
		var $pwd = $editForm.find("[name=userPwd]");
		var $pwdCopy = $editForm.find("[name=userPwdCopy]");
		var $newPwd = $editForm.find("[name=newUserPwd]");
		var $newPwdCopy = $editForm.find("[name=newUserPwdCopy]");
		if(!$pwd.val()){
			// locale 에 맞게 수정
			common.alert("비밀번호를 입력해주세요.", $pwd.focus());
			return false;
		}else if(pwdChk && ($pwd.val() != $pwdCopy.val())){
			// locale 에 맞게 수정
			common.alert("비밀번호가 일치하지 않습니다.", $pwdCopy.focus());
			return false;
		}else if($newPwd.val() && ($pwd.val() == $newPwd.val())){
			// locale 에 맞게 수정
			common.alert("현재 비밀번호와 동일합니다.", $newPwd.focus());
			return false;
		}else if(!pwdChk && ($newPwd.val() || $newPwdCopy.val()) && $newPwd.val() != $newPwdCopy.val()){
			// locale 에 맞게 수정
			common.alert("변경비밀번호가 일치하지 않습니다.", $newPwd.focus());
			return false;
		}
		common.confirm(msg, {
			"확인": function() {
				if(typeof(fn) == "function") fn();
	        },
	        "취소": function() {
	        	$( this ).dialog( "close" );
	        }
		});

	},

	editMyInfo: function(userId){
		var $userEditForm = $("#dialog-userEditForm")
			.find(":input").val("").end()
			.find("select option:eq(0)").prop("selected", true).end();

		if(!userId || typeof userId != 'string') userId = $("#login_user").val();
		$.post(contextPath+"/user/infoAJax.json", { "userId" : userId }, function(data) {

		}, "json").done(function(data) {
			var userInfo = data.userInfo;
			if(userInfo){

				$userEditForm
					.find("[name=userId]").val(userInfo.userId).prop("readonly", true).end()
					.find("[name=userName]").val(userInfo.userName).end()
					.find("[name=userRole] option[value="+userInfo.userRole+"]").prop("selected", true).end()
					.find(".user_state").show()
						.find("option[value="+userInfo.userState+"]").prop("selected", true).end()
						.end()
					.find(".nowPwd").hide().end().find(".newPwd").show().end()
					.dialog({ buttons: {
						"수정": function() {
							userArea.dataEdit("수정하시겠습니까?", userArea.dataUpdate);
				        },
				        "취소": function() {
				        	$( this ).dialog( "close" );
				        }
					} }).dialog( "open" );

			}else{
				common.alert(common.serverError);
			}
		}).fail(function(data) {
			common.alert(common.serverError);
			return false;
		});
	},


	/**
	 * 계정 수정 수행
	 */
	dataUpdate : function (){
		var $editForm = $("form", "#dialog-userEditForm");

		$.post(contextPath+"/user/modAJax.json", $editForm.serialize(), function(data) {

		}, "json").done(function(data) {
			if(data.code==0){
				var userInfo = data.userInfo;

				$(".searchDataList > tbody", "#usersFormDiv")
					.find(".userEditForm[userId='"+common.isEmpty(userInfo.userId)+"']").closest("tr")
					.find(".userEditForm").text(common.isEmpty(userInfo.userName)).end()
					.find(".userRoleTxt").text(common.isEmpty(userInfo.userRoleTxt)).end()
					.find(".userStateTxt").text(common.isEmpty(userInfo.userStateTxt)).end()
					.find("td:last").text(common.isEmptyDate(userInfo.lastModified)).end();

				$("#dialog-userEditForm").dialog( "close" );
				common.alert("수정되었습니다");
			}else if(data.message){
				common.alert(data.message);
			}else{
				common.alert(common.serverError);
			}
		}).fail(function(data) {
			common.alert(common.serverError);
			return false;
		});
		return false;
	},

	logout : function(){
		var href = $(this).attr("href");
		// locale 에 맞게 수정
		var msg = "로그아웃 하시겠습니까?";

		common.confirm(msg, {
			"확인": function() {
				window.location.href = href;
	        	$( this ).dialog( "close" );
	        	return true;
	        },
	        "취소": function() {
	        	$( this ).dialog( "close" );
	        }
		});
		return false;

	}
};

$(function(){
	$("#editMyInfo").click(userArea.editMyInfo);
	//회원정보 form 셋팅
	userArea.editFormSetting();
	$("#logout").click(userArea.logout);
});